<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Ccc\V20200210\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribePredictiveDialingCampaign response structure.
 *
 * @method integer getCampaignId() Obtain Task id.
 * @method void setCampaignId(integer $CampaignId) Set Task id.
 * @method string getName() Obtain Task name.
 * @method void setName(string $Name) Set Task name.
 * @method integer getCallOrder() Obtain Being called sequence: 0 for random 1 for in order.
 * @method void setCallOrder(integer $CallOrder) Set Being called sequence: 0 for random 1 for in order.
 * @method integer getSkillGroupId() Obtain ID of the used skill group of agents.
 * @method void setSkillGroupId(integer $SkillGroupId) Set ID of the used skill group of agents.
 * @method integer getIVRId() Obtain Specified ivr id.
 * @method void setIVRId(integer $IVRId) Set Specified ivr id.
 * @method integer getPriority() Obtain Running priority of multiple tasks in the same application, from high to low 1 - 5.
 * @method void setPriority(integer $Priority) Set Running priority of multiple tasks in the same application, from high to low 1 - 5.
 * @method integer getExpectedAbandonRate() Obtain Expected call drop rate, percentage, 5 - 50.
 * @method void setExpectedAbandonRate(integer $ExpectedAbandonRate) Set Expected call drop rate, percentage, 5 - 50.
 * @method integer getRetryTimes() Obtain Number of call retries, 0 - 2.
 * @method void setRetryTimes(integer $RetryTimes) Set Number of call retries, 0 - 2.
 * @method integer getRetryInterval() Obtain Call retry interval, in seconds, [60 - 86,400].
 * @method void setRetryInterval(integer $RetryInterval) Set Call retry interval, in seconds, [60 - 86,400].
 * @method integer getStartTime() Obtain Task start time. unix timestamp. the task will automatically start after this time.
 * @method void setStartTime(integer $StartTime) Set Task start time. unix timestamp. the task will automatically start after this time.
 * @method integer getEndTime() Obtain Task termination time. unix timestamp. the task will automatically terminate after this time.
 * @method void setEndTime(integer $EndTime) Set Task termination time. unix timestamp. the task will automatically terminate after this time.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribePredictiveDialingCampaignResponse extends AbstractModel
{
    /**
     * @var integer Task id.
     */
    public $CampaignId;

    /**
     * @var string Task name.
     */
    public $Name;

    /**
     * @var integer Being called sequence: 0 for random 1 for in order.
     */
    public $CallOrder;

    /**
     * @var integer ID of the used skill group of agents.
     */
    public $SkillGroupId;

    /**
     * @var integer Specified ivr id.
     */
    public $IVRId;

    /**
     * @var integer Running priority of multiple tasks in the same application, from high to low 1 - 5.
     */
    public $Priority;

    /**
     * @var integer Expected call drop rate, percentage, 5 - 50.
     */
    public $ExpectedAbandonRate;

    /**
     * @var integer Number of call retries, 0 - 2.
     */
    public $RetryTimes;

    /**
     * @var integer Call retry interval, in seconds, [60 - 86,400].
     */
    public $RetryInterval;

    /**
     * @var integer Task start time. unix timestamp. the task will automatically start after this time.
     */
    public $StartTime;

    /**
     * @var integer Task termination time. unix timestamp. the task will automatically terminate after this time.
     */
    public $EndTime;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $CampaignId Task id.
     * @param string $Name Task name.
     * @param integer $CallOrder Being called sequence: 0 for random 1 for in order.
     * @param integer $SkillGroupId ID of the used skill group of agents.
     * @param integer $IVRId Specified ivr id.
     * @param integer $Priority Running priority of multiple tasks in the same application, from high to low 1 - 5.
     * @param integer $ExpectedAbandonRate Expected call drop rate, percentage, 5 - 50.
     * @param integer $RetryTimes Number of call retries, 0 - 2.
     * @param integer $RetryInterval Call retry interval, in seconds, [60 - 86,400].
     * @param integer $StartTime Task start time. unix timestamp. the task will automatically start after this time.
     * @param integer $EndTime Task termination time. unix timestamp. the task will automatically terminate after this time.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("CampaignId",$param) and $param["CampaignId"] !== null) {
            $this->CampaignId = $param["CampaignId"];
        }

        if (array_key_exists("Name",$param) and $param["Name"] !== null) {
            $this->Name = $param["Name"];
        }

        if (array_key_exists("CallOrder",$param) and $param["CallOrder"] !== null) {
            $this->CallOrder = $param["CallOrder"];
        }

        if (array_key_exists("SkillGroupId",$param) and $param["SkillGroupId"] !== null) {
            $this->SkillGroupId = $param["SkillGroupId"];
        }

        if (array_key_exists("IVRId",$param) and $param["IVRId"] !== null) {
            $this->IVRId = $param["IVRId"];
        }

        if (array_key_exists("Priority",$param) and $param["Priority"] !== null) {
            $this->Priority = $param["Priority"];
        }

        if (array_key_exists("ExpectedAbandonRate",$param) and $param["ExpectedAbandonRate"] !== null) {
            $this->ExpectedAbandonRate = $param["ExpectedAbandonRate"];
        }

        if (array_key_exists("RetryTimes",$param) and $param["RetryTimes"] !== null) {
            $this->RetryTimes = $param["RetryTimes"];
        }

        if (array_key_exists("RetryInterval",$param) and $param["RetryInterval"] !== null) {
            $this->RetryInterval = $param["RetryInterval"];
        }

        if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) {
            $this->StartTime = $param["StartTime"];
        }

        if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) {
            $this->EndTime = $param["EndTime"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
